
package com.liesp.util;

import java.sql.*;
import java.util.*;
import java.io.Serializable;

/**
 * 
* 项目名称：Liesp<br>
* 类名称：BeanUtil <br>  
* 类描述：  常用功能基本类,提供静态方法调用 <br>
* 创建人：许彪   
* 创建时间：2009-8-28 上午11:36:39 <br> 
* 修改人：   
* 修改时间：                  <br>  
* 修改备注：   
* @version V1.0
 */
public class BeanUtil {
	private static Random random = new Random();

	private static char[] chars = new char[] { '0', '1', '2', '3', '4', '5',
			'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
			'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
			'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
			'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
			'w', 'x', 'y', 'z' };

	/**
	 * 将字符串转换float类型的数据
	 * 
	 * @param id
	 * @return
	 */
	public static float getFloat(String id, float defaultValue) {
		float r = defaultValue;
		if (id != null) {
			try {
				r = Float.parseFloat(id.trim());
			} catch (Exception e) {
			}
		}
		return r;

	}

	public static float getFloat(String id) {
		return getFloat(id, 0);
	}

	/**
	 * 把String转换为数据，如果 String=null则返回0
	 */
	public static int getInt(String id) {
		return getInt(id, 0);
	}

	/**
	 * 将String转换为int型 如果转换失败则返回defaultValue
	 * 
	 * @param id
	 * @param defaultValue
	 * @return
	 */
	public static int getInt(String id, int defaultValue) {
		int tmpid = defaultValue;
		if (id != null) {
			try {
				tmpid = Integer.parseInt(id.trim());
			} catch (Exception e) {
			}
		}
		return tmpid;
	}

	public static int[] getInt(String[] id) {
		if (id != null && id.length > 0) {
			int[] iID = new int[id.length];
			for (int i = 0; i < id.length; i++) {
				iID[i] = getInt(id[i]);
			}
			return iID;
		} else {
			return new int[0];
		}
	}

	/**
	 * 把String转换为数据，如果 String=null则返回0
	 * 
	 * @param id
	 * @return
	 */
	public static long getLong(String id) {
		return getLong(id, 0);
	}

	/**
	 * 把String转换为数据
	 */
	public static long getLong(String id, long defaultValue) {
		long tmpid = defaultValue;
		if (id != null) {
			try {
				tmpid = Long.parseLong(id.trim());
			} catch (Exception e) {
			}
		}
		return tmpid;
	}

	public static long[] getLong(String[] id) {
		if (id != null && id.length > 0) {
			long[] iID = new long[id.length];
			for (int i = 0; i < id.length; i++) {
				iID[i] = getLong(id[i]);
			}
			return iID;
		} else {
			return new long[0];
		}
	}

	/**
	 * 取随机的字符串
	 * 
	 * @param length
	 * @return
	 */
	public static String getRandomString(int length) {
		char[] r = new char[length];
		for (int i = 0; i < r.length; i++) {
			r[i] = chars[random.nextInt(chars.length)];
		}
		return String.valueOf(r);
	}

	/**
	 * 取一定长度的随机整数
	 * 
	 * @param length
	 * @return
	 */
	public static int getRandomInt(int length) {
		return (int) (Math.random() * Math.pow(10, length));
	}

	/**
	 * 对数组进行排重
	 * 
	 * @param t
	 * @return
	 */
	public static Serializable[] getOnly(Serializable[] t) {
		if (t == null || t.length < 1)
			return t;
		Serializable[] r = null;
		HashMap map = new HashMap(t.length);
		for (int i = 0; i < t.length; i++) {
			map.put(t[i], t[i]);
		}
		if (map.size() == t.length) {
			r = t;
		} else {
			r = (Serializable[]) map.values().toArray(
					new Serializable[map.size()]);
		}
		return r;
	}

	/**
	 * 排重
	 * 
	 * @param t
	 * @return
	 */
	public static List getOnly(List t) {
		if (t == null || t.size() < 1)
			return t;
		HashMap map = new HashMap(t.size());
		List r =null;
		for (int i = 0; i < t.size(); i++) {
			map.put(t.get(i), t.get(i));
		}
		if (map.size() != t.size()) {
			r=new ArrayList(map.size());
			r.addAll(map.values());
		}
		else{
			r=t;
		}
		return r ;
	}

}
